package com.zpself.module.算法练习.链表;
class 两两交换链表中的节点 {
    public static void main(String[] args) {
        ListNode n1 = new ListNode(1);
        ListNode n2 = new ListNode(2);
        ListNode n3 = new ListNode(3);
        ListNode n4 = new ListNode(4);
        n1.next=n2;
        n2.next=n3;
        n3.next=n4;
        ListNode listNode = swapPairs(n1);
        while (listNode!=null){
            System.out.print(listNode.val+"->");
            listNode = listNode.next;
        }
    }

    public  static ListNode swapPairs(ListNode head) {
        ListNode r = new ListNode(0,head);
        ListNode p =r;//前一个节点
        ListNode c=head;//当前节点
        while(c!=null && c.next!=null){
            p.next =c.next ;//1
            c.next = c.next.next;//2
            p.next.next =c;
            p = c;
            c = c.next;
        }
        return r.next ;
    }
}